#ifndef SWE_TRAITS_HPP
#define SWE_TRAITS_HPP

#include "solverBase.hpp"

namespace hms
{

template<typename MeshType>
class SWESolver;

struct SWESettings;

template<typename _MeshType>
class SolverTraits<SWESolver<_MeshType>> {
public:
	using MeshType = _MeshType;
	using SettingsType = SWESettings;
	enum class ConstantName {
		Density,
		Viscosity,
		NNames,
	};
	enum class FieldName {
		Velocity,
		WaterDepth,
		BottomElevation,
		NNames,
	};
	enum class ConstantFieldName {
		ManningsN,
		NNames,
	};
	enum class SourceFieldName {
		Rainfall,
		Infiltration,
		Drainage,
		NNames,
	};
	enum class FluxScheme {
		HLLC,
		FullyUpwind,
	};
};

} // namespace hms

#endif
